////////////////////////////////////////////////////////////////////////////////

#include "client_engine.h"

////////////////////////////////////////////////////////////////////////////////

#include "client.h"

////////////////////////////////////////////////////////////////////////////////


ClientEngine::ClientEngine( Client* _client )
: m_KeyFlags (0x0),
  m_MousePosition(0,0),
  m_Client(_client)
{
}


////////////////////////////////////////////////////////////////////////////////


ClientEngine::~ClientEngine()
{
}


////////////////////////////////////////////////////////////////////////////////


void ClientEngine::ProcessEvent( STM::Event _event )
{
    switch (_event)
    {
    case STM::W_DOWN:
        m_KeyFlags |= W_KEY;
        break;

    case STM::W_UP:
        m_KeyFlags &= ~W_KEY;
        break;

    case STM::S_DOWN:
        m_KeyFlags |= S_KEY;
        break;

    case STM::S_UP:
        m_KeyFlags &= ~S_KEY;
        break;

    case STM::A_DOWN:
        m_KeyFlags |= A_KEY;
        break;

    case STM::A_UP:
        m_KeyFlags &= ~A_KEY;
        break;

    case STM::D_DOWN:
        m_KeyFlags |= D_KEY;
        break;

    case STM::D_UP:
        m_KeyFlags &= ~D_KEY;
        break;

    case STM::MOUSE1_DOWN:
        m_KeyFlags |= MOUSE_1;
        break;

    case STM::MOUSE1_UP:
        m_KeyFlags &= ~MOUSE_1;
        break;

    default:
        break;
    }
}


////////////////////////////////////////////////////////////////////////////////


void ClientEngine::ProcessMouseMotion( unsigned short _x, unsigned short _y )
{
    // Save coordinates
    m_MousePosition.first = _x;
    m_MousePosition.second = _y;
}


////////////////////////////////////////////////////////////////////////////////


unsigned int ClientEngine::GetKeyFlags() const
{
    return m_KeyFlags;
}


////////////////////////////////////////////////////////////////////////////////


STM::ScrPosition ClientEngine::GetMousePosition() const
{
    return m_MousePosition;
}


////////////////////////////////////////////////////////////////////////////////
